package simplemaven2.vt;

import org.apache.log4j.Logger;
import ru.chezclif.lern.conread.Preconditions;
import simplemaven2.vt.data.Config;
import simplemaven2.vt.utils.BeanUtils;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * Бин, реализующий функционал меню
 *
 * @author Vit
 */
public class MenuLeftBean implements Serializable {
    /**
     * Стандартный логгер
     */
    private static final Logger logger = Logger.getLogger(MenuLeftBean.class);

    /**
     * Хранилище с конфигами
     */
    private List<Config> localConfigList = new ArrayList<Config>();

    /**
     * Установка страницы редактирования конфигов и создание копии конфига с его номером массива
     */
    public void goOperationsPage() {
        EditConfigRightBean editConfigRightBean = (EditConfigRightBean) BeanUtils.getBean("editconfigrightbean");
        Preconditions.notNull(editConfigRightBean);
        editConfigRightBean.setDeltaConfig(null);
        for (Config config : localConfigList) {
            if (config.getConfigName().equals(editConfigRightBean.getConfigName())) {
                editConfigRightBean.setDeltaConfig(new Config(config));
                editConfigRightBean.setPositionOfSavedConfig(localConfigList.indexOf(config));
                break;
            }
        }
        LegalBean legalBean = (LegalBean) BeanUtils.getBean("legalbean");
        Preconditions.notNull(legalBean);
        legalBean.setNowUsedPage(3);
        logger.info("Go to the operations page");
    }

    /**
     * Установка страницы загрузки файла на сервер
     */
    public void goLoadPage() {
        LegalBean legalBean = (LegalBean) BeanUtils.getBean("legalbean");
        Preconditions.notNull(legalBean);
        legalBean.setNowUsedPage(1);
        logger.info("Go to the loading page");
    }

    /**
     * Возвращает из бина массив конфигов
     */
    public List<Config> getLocalConfigList() {
        return localConfigList;
    }
}
